/**
 * axios请求封装
 * https://rudon.blog.csdn.net/
 */
import axios from 'axios'
 
// 请求地址前缀
let baseURL = ''
if( process.env.NODE_ENV === 'production' ) {
    // 生产环境
    baseURL = ''
} else {
    // 开发环境
    baseURL = 'http://本地测试域名/'
}
 
// 请求拦截器
// 更多参考 https://www.jb51.net/article/273205.htm
axios.interceptors.request.use((config) => {
    // 可选 - 登录token - https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
    if (localStorage.getItem('token')) {
        config.headers['token'] = localStorage.getItem('token')
    }
    // 请求超时时间 - 毫秒
    config.timeout = 10000
    config.baseURL = baseURL
    // 自定义Content-type
    // config.headers['Content-type'] = 'application/json'
    return config;
}, (error) => {
    return Promise.reject(error)
})
 
// 响应拦截器
// 更多参考 https://www.jb51.net/article/273205.htm
axios.interceptors.response.use((response) => {
    /**
     * 可添加请求响应的处理逻辑, 例如接口自定义的response.data.code不是200代表失败。
     * 错误的话 return Promise.reject(response)
     * 正确的话 return response
     */
    return response
}, (error) => {
    // 可添加请求失败后的处理逻辑
    return Promise.reject(error)
})
 
 
 
// axios的get请求
export function getAxios({url, params}) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params
        }).then(res => {
            resolve(res.data)
        }).catch(err => {
            console.log(err)
            reject(err)
        })
    })
}
 
// axios的post请求
export function postAxios({url, data}) {
    return new Promise((resolve, reject) => {
        axios.post(
            url, 
            data, 
            {
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            }
        ).then(res => {
            resolve(res.data)
        }).catch(err => {
            reject(err)
        })
    })
}
 
export default axios